
package servidor.bbdd;

import common.EOlympicsException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Classe GestorUniversitats
 * @author Juan Luís Chávez Lobato i Jesús Hernàndez Garcia
 */


public class GestorUniversitats {
    
    private GestorDiscConnexio gestor;
    private Connection connexio;

    /**
     * Constructor de la classe GestorUniversitats
     * Crea un nou gestor de disc.
     */
    public GestorUniversitats() throws EOlympicsException {
        this.gestor = new GestorDiscConnexio();
        this.gestor.obreConnexioBD();
        this.connexio = gestor.getConnexio();
    }

    /**
     * Constructor de la classe GestorUniversitats
     * Utilitza el gestor de disc passat com a paràmetre
     * @param gdc connexió a la BD de tipus GestorDiscConnexio
     */
    public GestorUniversitats(GestorDiscConnexio gdc) {
        this.gestor   = gdc;
        this.connexio = gdc.getConnexio();
    }
    
/**
     * Extreu el nom d'una Universitat pel seu Id
     * @param idUni Id de la Universitat
     * @return Nom de la Universitat amb Id igual al passat com a paràmete
     * @exception EOlympicsException
     */
    public String obtenirNomUniversitat(int idUni) throws EOlympicsException {
        String DescUni = "";
        Statement sentencia = gestor.creaSentencia();
        String select = "SELECT nombre "
                + "FROM UNIVERSIDAD WHERE id_universidad = " + idUni;
        try {
            ResultSet rs = sentencia.executeQuery(select);
            if (rs.next()) {
                DescUni = rs.getString(1);
            }
            rs.close();
            sentencia.close();

        } catch (SQLException sqle) {
            System.out.println(sqle.getMessage());
            throw new EOlympicsException(EOlympicsException.ERR_SQL);
        } catch (Exception e) {
            System.out.println(e.getMessage());
            throw new EOlympicsException(EOlympicsException.ERR_DESC_EXEC);
        }
        return DescUni;
    }
}
